# ifndef __Scale_H_
# define __Scale_H_

	// Approximate screen resolution.
const int c_pixels_per_cm = 40;

	// Meters per pixel.
extern float g_fScale;

	// Pixels per degree.
extern float g_kX, g_kY;

const float c_ScaleMin = 3.f/c_pixels_per_cm;
const float c_ScaleMax = 3000000.f/c_pixels_per_cm;

float GetRulerLen ();

size_t GetStdScales ();
bool GetStdScaleName (size_t _cIndex, char * _strScale);
float GetStdScale (size_t _cIndex);

void RefreshScales ();

void SetScale (float _NewScale, bool _bRefresh = true);
void SetScale (float _fNewScale, long _lX0, long _lY0, bool _bRefresh = true);

struct rect_t;
float GetRectScale (const rect_t & _rect);

float GetFullMapScale ();
void SetFullMapScale ();

float GetScale (float _fScale, char * _strText);

# endif // __Scale_H_